1. Field of the Invention
The present invention relates to an information processing system having a plurality of clusters connected through a network interconnecting clusters, and more particularly to an information processing system for controlling operations of an input/output device of another cluster according to instructions of a cluster.
2. Description of the Related Art
In this kind of a conventional information processing system connecting a plurality of clusters through a network interconnecting clusters, in the case of operating an input/output device in a predetermined cluster by instructions of a cluster other than the predetermined cluster, the input/output device is controlled by the use of a processor mounted on the predetermined cluster having the input/output device.
FIG. 11 is a block diagram showing an organization of a cluster in the conventional information processing system. FIG. 10 is a block diagram showing an organization of a processor mounted on each cluster in the conventional information processing system. FIG. 9 is a block diagram showing a data transfer processing device mounted on each cluster in the conventional information processing system.
As illustrated in FIG. 11, a cluster 30 of the conventional information processing system comprises a plurality of processors 31 for conducting various processing, a shared memory 13 for being shared among the processors 31, a local network 12 for connecting the processors 31 and the shared memory 13, and a data transfer processing device 35 connected with the local network 12 for controlling input/output devices 14 and data transfer between another cluster and this one via a network 40 interconnecting clusters.
As illustrated in FIG. 10, the processor 31 of the conventional information processing system comprises a cluster discrimination unit 311, a processor selection unit 312 and an instruction transfer unit 313 for transferring input/output instructions toward input/output devices of another cluster, and a request control unit 315, a request decoding unit 316, a request storage unit 317, an input/output instruction issuing unit 318, a buffer transfer unit 319 and a request termination notifying unit 320 for processing input/output instructions issued by a processor of another cluster. It further comprises an interface port 314 for connecting with a local network 12 as well as the other components for issuing and processing the input/output instructions toward the input/output devices of the present cluster, which are not shown.
As illustrated in FIG. 9, the data transfer processing device 35 of the conventional information processing system comprises an instruction storage unit 351, an instruction decoding unit 352, a transfer control unit 354 and a data transfer unit 356 for controlling data transfer between another cluster and this one, and an instruction completion notifying unit 355 for notifying completion of the input/output processing according to the input/output instruction from the processor 31 and a shared memory access unit 353 for accessing the shared memory 13. It further comprises a local network port 359 for connecting with the local network 12 and a network port 360 interconnecting clusters for connecting with the network 40 interconnecting clusters.
An operation in thus-constituted conventional information processing system will be explained in the case where an input/output instruction issued by a processor 31 of a predetermined clusters 30 is to direct an input/output device belonging to another cluster 30 than the predetermined cluster to perform the input/output of the data.
In a cluster 30 which issues the input/output instruction, the processor 31 judges whether the input/output instruction is directed to an input/output device 14 of the present cluster 30, or it is directed to an input/output device 14 of another cluster 30 by the use of the cluster discrimination unit 311. When the input/output instruction is directed to the input/output device 14 belonging to another cluster 30, the processor selection unit 312 selects a processor 31 among a plurality of processors 31 in another cluster 30 indicated by the cluster identifier designated by the input/output instruction, or a cluster 30 designated for processing the input/output instruction. The instruction transfer unit 313 transfers the input/output instruction as a request intervening processors to the local network 12 with the selected processor 31 of another cluster 30 fixed as a destination.
The processors intervening request transferred to the local network 12 is further transferred to the network 40 interconnecting clusters via the data transfer processing device 35. It is supplied to the destination cluster 30, where it is supplied to the processor 31 selected as the destination through the data transfer processing device 35 and the local network 12 of the destination cluster 30.
In the cluster 30 having received the processors intervening request, the processor 31 which has been selected as the destination stores the processors intervening request into the request storage unit 317 on receipt of the processors intervening request, at first. The request decoding unit 316 reads out the processors intervening request stored in the request storage unit 317 and decodes it. Processing shall be conducted according to the decoded request. For example, when the request is to direct reading of the data from the input/output device 14, the input/output instruction issuing unit 318 alters the input/output instruction in the request, and issues the input/output instruction to the data transfer processing device 35 of the present cluster 30 with the buffer on the shared memory 13 of the present cluster 30 used as the buffer for data transfer from the input/output device 14, the present cluster being designated by the input/output instruction.
The data transfer processing device 35 executes an ordinal input/output processing on the basis of the input/output instruction. More specifically, when the instruction storage unit 351 receives the input/output instruction issued by the input/output instruction issuing unit 318, the instruction decoding unit 352 reads out the input/output instruction from the instruction storage unit 351 and decodes it. The transfer control unit 354 receives control information such as the number of an input/output device, an input data address, a length of input data, a writing starting address in the shared memory and the like, which have been read out from the input/output instruction by the instruction decoding unit 352, and gives an instruction of the data input/output to the data transfer unit 356. In the instruction for executing data input with an input/output device 14 as mentioned above, the data input is executed with a specified input/output device 14. The data transfer unit 356 reads out a desired data by the use of the input/output device 14 according to the instruction, sends it to the shared memory access unit 353, and notifies the transfer control unit 354 of the reading completion. The transfer control unit 354 gives an instruction to the shared memory access unit 353 so as to write the data which is sent from the data transfer unit 356 to the shared memory access unit 353, into the shared memory 13. According to the instruction, the shared memory access unit 353 writes the data into the shared memory 13 and notifies the transfer control unit 354 of the writing completion. The transfer control unit 354 reports the completion notice received from the shared memory access unit 353, together with the processor number of the processor 31 (request source processor) of the cluster 30 having issued the instruction, to the instruction completion notifying unit 355. The instruction completion notifying unit 355 reports execution completion of the input/output instruction to the request source processor 31.
On receipt of the completion notice from the instruction completion notifying unit 355 of the data transfer processing device 35, the processor 31 issues to the data transfer processing device 35, the transfer instruction for transferring the data from the input buffer on the shared memory 13 of this cluster 30 to the input buffer on the shared memory 13 of the cluster 30 having issued the processors intervening request.
The data transfer processing device 35 performs an ordinal data transfer processing according to the received data transfer instruction. Specifically, when the instruction storage unit 351 receives the data transfer instruction from the processor 31, the instruction decoding unit 352 reads out the transfer instruction from the instruction storage unit 351 and decodes it. The transfer control unit 354 receives the information such as a reading starting address on the shared memory 13 of the present cluster 30, which has been read out from the data transfer instruction by the instruction decoding unit 352, a transfer length, a writing starting address in the shared memory 13 of the data destination cluster 30 and the like, and gives an instruction to the shared memory access unit 353 so as to read out the data from the shared memory in units of every data transfer processing. The shared memory access unit 353 transfers the read out data to the data transfer unit 356 and notifies the transfer control unit 354 of the reading completion. The transfer control unit 354 gives an instruction to the data transfer unit 356 so as to transmit to the network 40 interconnecting clusters, the data sent from the shared memory access unit 353 to the data transfer unit 356. At this time, a cluster identifier, a writing address in another cluster, a transfer length, operational instructions to the data transfer processing device of another cluster and the like are added to the transfer data. According to these instructions, the data transfer unit 356 transmits the transfer data to the network 40 interconnecting clusters, where the transfer data is transferred to the cluster specified as the destination by the cluster identifier which has been added to the data.
The data transfer processing device 35 of the destination cluster 30 separates the additional control information from the data received by the data transfer unit 356 and moves it to the transfer control unit 354. The transfer control unit 354 gives an instruction to the data transfer unit 356 and the shared memory access unit 353 so as to write the data within the data transfer unit 356 into the shared memory 13 according to the additional control information. The data transfer unit 356 reads out the written data and sends it to the shared memory access unit 353 according to the instruction. The shared memory access unit 353 writes the written data received from the data transfer unit 356 into the predetermined address on the shared memory 13 and notifies the transfer control unit 354 of the writing completion. The transfer control unit 354 transfers to the instruction completion notifying unit 355, the received completion notice as well as the cluster number of the cluster 30 which issues the data transfer instruction, or the cluster 30 which executes the input/output processing, the cluster number being read out from the control information. The instruction completion notifying unit 355 notifies the data transfer unit 356 of the data transfer processing device 35 of the cluster 30 which issues the instruction that the transfer has been completed.
When the data transfer processing device 35 of the instruction issuing cluster 30 receives the completion notice, the transfer control unit 354 transfers the completion notice as well as the number of the request source processor to the instruction completion notifying unit 355, and the instruction completion notifying unit 355 notifies the processor 31 which has issued the data transfer instruction of the completion.
On receipt of the notice, the processor 31 having issued the data transfer notifies the processor 31 of the cluster 30 having issued the processors intervening request that the whole process has been completed with respect to the corresponding request.
As mentioned above, when an instruction for controlling an input/output device belonging to another cluster is issued from a processor mounted on a determined cluster in this kind of the conventional information processing system, processing has been performed in the following order; an instruction is transferred between clusters, input/output devices are operated by the control of the cluster in which the instruction has been received, the processing result by the input/output devices of the clusters is delivered therebetween, and completion of receiving the processing result in the clusters is notified therebetween. The processing of the input/output device of the cluster having received the instruction has been executed according to the control of the processor of the same cluster in the same way as in the case where the processor of the above cluster issues the instruction.
More specifically, when input/output control of the data is performed on the input/output device belonging to a cluster other than a predetermined cluster by a processor mounted on the predetermined cluster, the input/output operation has been performed by the use of the processor belonging to the cluster other than the predetermined cluster, the cluster including the input/output device to be controlled in the above mentioned conventional information processing device. Therefore, it has a defect that the procedure for executing the control becomes complicated, thereby to deteriorate the efficiency.
Also, it has a defect that execution performance of the application program in the cluster including the input/output device is degraded because the processor is used for the control of the input/output device of the above cluster.
Therefore, in the case where one of clusters is regarded as a front end cluster and the others are regarded as back end clusters, it is difficult to concentrically control the input/output devices of the respective clusters by the front end cluster.